// 08Control.h: interface for the C08Control class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_08CONTROL_H__E4A7A4DD_1BF5_48F0_9784_0D68D35C9790__INCLUDED_)
#define AFX_08CONTROL_H__E4A7A4DD_1BF5_48F0_9784_0D68D35C9790__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "08ControlBase.h"
#include "Control.h"

class C08Control : public C08ControlBase, public CControl
{
public:
	C08Control();
	virtual ~C08Control();
	virtual int Init(int iAxisNum, int* iCardNum, CDWordArray& iSignals);
	virtual int WritePort(int iCard, int bitno, int status, int* iOutState);
	virtual double GetPos(int iAxis);
	virtual int MoveTo(CDWordArray& iAxis, double* posDestination, int iLen, int iType);
	virtual int SetSpeedMove(CDWordArray& iAxis, CDWordArray& dHighSpeed, CDWordArray& dLowSpeed, CDWordArray& dAcc, int iType);
	virtual int GoHome(CDWordArray& iAxis, CDWordArray& iDirect, CDWordArray& orgmove);
	virtual int Stop(CDWordArray& iAxis, int iType);
	virtual int ReadPort(int iCard, int iBit);
	virtual int CheckHomeStatusAxis(CDWordArray& iAxis, CByteArray& iStatusHome);
	virtual int CheckLimitStatusAxis(CDWordArray& iAxis, CByteArray& iStatusLimit);
	virtual int IsMoving(CDWordArray& iAxis);
	virtual int PMove(CDWordArray& iAxis,int iDirect);
	virtual int TestPPM(int iAxis,int iPulse);

	int CheckRunStatusAxis(CDWordArray& iAxis, CDWordArray& iStatusMove);
};

#endif // !defined(AFX_08CONTROL_H__E4A7A4DD_1BF5_48F0_9784_0D68D35C9790__INCLUDED_)
